package com.service;

import com.dao.UserMapper;
import com.mod.UserModel;
import com.query.UserQuery;
import com.sun.deploy.util.StringUtils;
import com.utils.AssertUtil;
import com.utils.Md5Util;
import com.xxxx.BaseService;
import com.xxxx.crm.model.UserModel;
import com.xxxx.crm.service.User;
import com.xxxx.crm.service.UserMapper;
import com.xxxx.crm.utils.AssertUtil;

import java.util.HashMap;
import java.util.Map;

@Service
public class UserService extends BaseService<User,Integer> {

    private UserMapper userMapper;

    /**用户登录*/
    public UserModel login(String userName,String userPwd){
        /**
         *1.参数校验
         * 用户名 非空
         * 密码 非空
         * 2.根据用户名 查询用户记录
         * 3.校验用户存在性
         *  不存在 -->方法结束
         *  存在  -->校验密码
         *      密码错误--> 方法结束
         *      密码正确-->登陆成功 返回用户信息
         */
        checkLoginParams(userName,userPwd);
        User user=userMapper.queryUserByUserName(userName);
        AssertUtil.isTrue(flag:null==user,msg:"用户不存在或已注销!");
        AssertUtil.isTrue(!(user.getUserPwd().equals(Md5Util.encode(userPwd))),msg:"用户密码不正确，请重新输入!");
        return buildUserInfo(user);

    }

    private UserModel buildUserInfo(User user){
        UserModel userModel=new UserModel();
        userModel.setUserId(user.getId());
        userModel.setUserName(user.getUserName());
        userModel.setTrueName(user.getTrueName());
        return userModel;
    }

    private void checkLoginParams(String userName, String userPwd) {
        AssertUtil.isTrue(StringUtils.isBlank(userName),msg:"用户名不能为空");
        AssertUtil.isTrue(StringUtils.isBlank(userPwd),msg:"用户密码不能为空");
    }
}
